The name of the interface to a class of objects can be used as a type name. For example, if an Interface Definition Language (IDL) specification includes an interface declaration for a class (of objects) C1, then C1 can be used as a type name within that IDL specification. When used as a type, an interface name indicates a reference to an object that supports that interface. An interface name can be used as the type of an operation argument, as an operation return type, or as a member of a constructed type (a struct, union, or enum). In all cases, the use of an interface name indicates a reference to (instead of an instance) an object that supports that interface.