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.

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.


[ 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.

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

You can use the default attribute to specify the default source interface for an object.

// 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
{
};

Attribute Context

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.

Community Additions

ADD
Show:
© 2015 Microsoft