Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All


Specifies that a member of a module, interface, or dispinterface cannot be called arbitrarily.

[ restricted( 
) ]


One or more interfaces that may not be called arbitrarily on a COM object. This parameter is only valid when applied to a class.

The restricted C++ attribute has the same functionality as the restricted MIDL attribute.

The following code shows how to use the restricted attribute:

// cpp_attr_ref_restricted.cpp
// compile with: /LD
#include "windows.h"
#include "unknwn.h"

[object, uuid("00000000-0000-0000-0000-000000000001")]
__interface a

[object, uuid("00000000-0000-0000-0000-000000000002")]
__interface b

[coclass, restricted(a,b), uuid("00000000-0000-0000-0000-000000000003")]
class c : public a, public b

Attribute Context

Applies to

Interface method, interface, class, struct



Required attributes

coclass (when applied to class or struct)

Invalid attributes


For more information about the attribute contexts, see Attribute Contexts.

© 2015 Microsoft