--- description: "Learn more about: source (C++)" title: "source (C++ COM Attribute)" ms.date: "10/02/2018" f1_keywords: ["vc-attr.source"] helpviewer_keywords: ["source attribute"] ms.assetid: 1878d05d-7709-4e97-b114-c62f38f5140e --- # source (C++) On a class, specifies the COM object's source interfaces for connection points. On a property or method, indicates that the member returns an object or VARIANT that is a source of events. ## Syntax ```cpp [ source(interfaces) ] ``` ### Parameters *interfaces*
One or more interfaces that you specify when you apply the source attribute to a class. This parameter is not used when source is applied to a property or method. ## Remarks The **source** C++ attribute has the same functionality as the [source](/windows/win32/Midl/source) MIDL attribute. You can use the [default](default-cpp.md) attribute to specify the default source interface for an object. ## Example ```cpp // cpp_attr_ref_source.cpp // compile with: /LD #include "windows.h" #include "unknwn.h" [module(name="MyLib")]; [object, uuid(11111111-1111-1111-1111-111111111111)] __interface b { [id(0), propget, bindable, displaybind, defaultbind, requestedit] HRESULT get_I([out, retval]long *i); }; [object, uuid(11111111-1111-1111-1111-111111111131)] __interface c { [id(0), propget, bindable, displaybind, defaultbind, requestedit] HRESULT et_I([out, retval]long *i); }; [coclass, default(c), uuid(11111111-1111-1111-1111-111111111132)] class N : public b { }; [coclass, source(c), default(b, c), uuid(11111111-1111-1111-1111-111111111133)] class NN : public b { }; ``` ## Requirements | Attribute context | Value | |-|-| |**Applies to**|**`class`**, **`struct`**, **interface**| |**Repeatable**|No| |**Required attributes**|`coclass` (when applied to class or struct)| |**Invalid attributes**|None| For more information about the attribute contexts, see [Attribute Contexts](cpp-attributes-com-net.md#contexts). ## See also [IDL Attributes](idl-attributes.md)
[Class Attributes](class-attributes.md)
[Method Attributes](method-attributes.md)
[coclass](coclass.md)