The properties, methods, and collections that a class implements are organized into functionally related groups. Each group is implemented as a repository interface. The properties, methods, and collections of each interface are members of the interface. An interface definition is the template to which an interface conforms.
To add a new interface to a repository, use the ClassDef object or the ReposTypeLib object.
An InterfaceDef object is also a RepositoryObject and a RepositoryObjectVersion object. In addition to the members described here, you can access members that are defined for those objects. For more information about accessing a member of an interface that is not the default interface, see Accessing Automation Object Members.
Use the InterfaceDef class to:
| Property | Description |
|---|---|
| Flags | Flags that specify whether the interface is extensible, and whether the interface should be visible to Automation interface queries |
| InterfaceID | The global interface identifier for the interface |
| Synonym | Stores a synonym of the interface name |
| TableName | The name of the SQL table that is used to store instance information for the properties of the interface |
| Method | Description |
|---|---|
| CreateAlias | Creates a new alias definition, and attaches it to the interface definition. |
| CreateMethodDef | Creates a new method definition, and attaches it to the interface definition. |
| CreatePropertyDef | Creates a new property definition, and attaches it to the interface definition. |
| CreateRelationshipColDef | Creates a relationship collection type. The collection type is attached to the interface definition. |
| ObjectInstances | Materializes an ObjectCol collection of all objects in the repository that expose this interface. |
| Collection | Description |
|---|---|
| Ancestor | The collection of one base interface from which this interface derives |
| Classes | The collection of classes that implement the interface |
| Descendants | The collection of other interfaces that derive from this interface |
| Members | The collection of members that are exposed by the interface |
| Properties | The collection of all persistent properties that are attached to the InterfaceDef object |
| ReposTypeLibScopes | The collection of all repository type libraries that contain this definition |
| Implies | The collection of InterfaceDef objects that are also implemented by this interface |
| ImpliedBy | The collection of InterfaceDef objects that also implement this interface |
| ScriptsUsedByInterface | The collection of script definition object used by this interface |