Repository Data Types

The following structures and data types are defined for the Microsoft Repository application programming interface.

Internal Identifier

struct INTID
{
   ULONG  iSiteID;
   ULONG  iLocalID;
};

typedef const INTID &REFINTID;

An INTID or a REFINTID variable is an internal identifier for a specific Repository object that uniquely identifies the object within a particular Repository database. It is not unique across all repositories. This is not the same thing as the interface identifier for an interface, or the class identifier that is used to create an instance of a class.

The internal identifier is composed of an internal site identifier (iSiteID), and an internal local identifier (iLocalID).

Internal Version Identifier

struct VERSIONID
{
    INTID           sIntID;
    BRANCHID       iBranchID;
    VERSIONNUM    iVersionStart;
};

typedef const VERSIONID &REFVERSIONID;

A VERSIONID or a REFVERSIONID variable is an internal identifier for a specific Repository object version that uniquely identifies the object version within a particular Repository database. It is not unique across all repositories.

The internal identifier is composed of an internal identifier (sIntID), a branch identifier (iBranchID), and a version-within-branch identifier (iVersionStart).

Object Identifier and Object-Version Identifier

typedef const OBJECTID OBJID;
typedef const OBJID    &REFOBJID;

An OBJID or a REFOBJID variable can be used in either of two ways:

An OBJID or a REFOBJID variable is composed of a global identifier (GUID) and a four-byte local identifier appended to the GUID. The GUID portion of the variable specifies where the identifier was created, and the local identifier has a value that is unique within the Repository database. When you use an OBJID or a REFOBJID variable to contain an object-version identifier, the four-byte local identifier is not the branch ID or the version-within-branch id of the object version.