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
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.


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.

Community Additions

© 2015 Microsoft