The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

Specifies that the user-defined type is a control.


The control attribute implies the coclass attribute. The control C++ attribute has the same functionality as the control MIDL attribute.

// cpp_attr_ref_control.cpp  
// compile with: /LD  
#include <windows.h>  
[module(name="Test", control=true)];  
[object, uuid("9e66a290-4365-11d2-a997-00c04fa37ddb")]  
__interface ICustom {  
   HRESULT Custom([in] long l, [out, retval] long *pLong);  
[coclass, control, appobject, uuid("9e66a294-4365-11d2-a997-00c04fa37ddb")]  
class CTest : public ICustom {};  

Attribute Context

Applies toclass, struct
Required attributesNone
Invalid attributesNone

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

IDL Attributes
Class Attributes
Typedef, Enum, Union, and Struct Attributes
Attributes Samples