Drawing Group Record msofbtDgg
The drawing group record is a variable length record consisting of a fixed part followed by an array. The fixed part is defined as follows.
// FDGG - File DGG
typedef struct _FDGG
{
MSOSPID spidMax; // The current maximum shape ID
ULONG cidcl; // The number of ID clusters (FIDCLs)
ULONG cspSaved; // The total number of shapes saved
// (including deleted shapes, if undo
// information was saved)
ULONG cdgSaved; // The total number of drawings saved
} FDGG;
The fixed part is followed by an array of ID clusters. The ID clusters are used internally for the translation of shape ids (SPIDs) to shape handles (MSOHSPs).
// File ID Cluster - used to save IDCLs
typedef struct _FIDCL
{
MSODGID dgid; // DG owning the SPIDs in this cluster
ULONG cspidCur; // number of SPIDs used so far
} FIDCL;