# APICOMPData Struct Reference
[COM Interfaces]

Inheritance diagram for APICOMPData:

List of all members.

## Public Member Functions
| APICOMPData ()
## Public Attributes
IDType | fFamily
| The ID of the family to which the component belongs (eg 'shdr').
IDType | fClass
| The unique ID (within its family) of the component class (eg 'schk').
TMCString63 | fName
| The name of the component class (eg "Checker Shader").
TMCString63 | fSubFamilyName
| The name of the sub family to which that component class belongs (eg "Pattern Functions").
int32 | fVersion
| The version of the component (1 if it is the only version).
TMCString31 | fVersionStr
| The string representation of the version number.
TMCString255 | fComment
| Additionnal data that can be used by the UI (generally for Carrara shaders).
int32 | fAPIVersion
| The Carrara API version number the component class uses.

## Detailed Description

Represents the 'COMP' resource.

Along with the GUID resource, it defines a Component Class (see also TComponentClassInfo) that is a description of the C++ class in your extension.
When the application calls your MakeCOMObject() function to create a new C++ instance of your C++ class, we also say that it creates a new Component Instance of your Component Class. Sometimes "class" or "instance" is omited in the documentation, but the context should tell you whether we're talking about the class or the instance of a component.

Component Classes are grouped into Compoment Families. A Family is associated with a particular C++ interface that all the component classes of the family must implement (eg the Shaders family is associated with I3DExShader).

Within a family, Component Classes are grouped into sub families. This is only used to enhance the user interface (generally to group related Component Classes into a sub menu like "Pattern Functions"). Sub families are identified by the fSubFamilyName field.

To handle versioning, it is allowed to have two Component Classes with the same ID (fClass), as long as they have different version numbers (fVersion). By default, the application will instanciate the latest version of a Componment class. But when reading an old file, the old instance will be created and used. A "Component Super Class" is simply the list of all the different versions of a Component Class.

## Constructor & Destructor Documentation

APICOMPData::APICOMPData | ( |  | ) | `[inline]`

## Member Data Documentation

int32 APICOMPData::fAPIVersion

The Carrara API version number the component class uses.

IDType APICOMPData::fClass

The unique ID (within its family) of the component class (eg 'schk').

TMCString255 APICOMPData::fComment

Additionnal data that can be used by the UI (generally for Carrara shaders).

IDType APICOMPData::fFamily

The ID of the family to which the component belongs (eg 'shdr').

TMCString63 APICOMPData::fName

The name of the component class (eg "Checker Shader").

TMCString63 APICOMPData::fSubFamilyName

The name of the sub family to which that component class belongs (eg "Pattern Functions").

int32 APICOMPData::fVersion

The version of the component (1 if it is the only version).

TMCString31 APICOMPData::fVersionStr

The string representation of the version number.

The documentation for this struct was generated from the following file:

- IExRegisterer.h