nonextensible attribute

The [nonextensible] attribute specifies that the IDispatch implementation includes only the properties and methods listed in the interface description and cannot be extended with additional members at run time. (By default, Automation assumes that interfaces may add members at run time; that is, it assumes they are extensible.)

[
    uuid(uuid-number), 
    nonextensible 
    [, optional-attribute-list]
] 
interface | dispinterface interface-name 
{
    interface-definition
}

Parameters

uuid-number

Specifies a universally unique identification number for the interface.

optional-attribute-list

Specifies a list of zero or more MIDL interface attributes.

interface-name

Specifies the name of the interface or dispinterface.

interface-definition

Specifies IDL statements that form the definition of the interface or dispinterface.

Remarks

You can apply the [nonextensible] attribute to either an interface or a dispinterface. However, an interface must also have the [dual] and [oleautomation] attributes.

Flags

TYPEFLAG_FNONEXTENSIBLE

Examples

library Hello
{
    [
        uuid(12345678-1234-1234-1234-123456789ABC), 
        helpstring("A helpful description."),
        oleautomation, 
        dual, 
        nonextensible
    ] 
    interface IHello : IDispatch
    {
        // Interface definition statements.
    }
}

See also

Contents of a Type Library

dispinterface

dual

Generating a Type Library With MIDL

interface

ODL File Syntax

oleautomation

TYPEFLAGS