Interface Header Attributes

You can use these attributes in the interface header to convey information about the entire interface:

Attribute Usage
uuid Designates a 128-bit value that distinguishes an interface from all other interfaces. The actual value may represent a GUID, a CLSID, or an IID.
local Directs the MIDL compiler to generate header files only. An interface must have either a uuid or a local attribute.
ms_union Controls the NDR alignment of nonencapsulated unions. Use for backward compatibility with interfaces built on MIDL 1.0 or 2.0.
object Identifies the interface as a COM interface and directs the MIDL compiler to generate proxy/stub code instead of RPC client and server stubs.
version Identifies a particular version of an interface in cases where multiple versions of the interface exist. Because COM interfaces are immutable, you cannot use the version attribute on an object interface.
pointer_default Specifies the default pointer type for all pointers except for those included in parameter lists. The default type can be unique, ref, or ptr.
endpoint Specifies a static (well-known) endpoint on which a server application will listen for remote procedure calls.

See Type Library Attributes for interface attributes, such as dual and oleautomation, that are specific to interfaces defined or referenced inside a library statement.