Article ID: 190148
Article Last Modified on 10/3/2005
APPLIES TO
- Microsoft ActiveX Template Library 3.0, when used with:
- Microsoft Visual C++ 6.0 Enterprise Edition
- Microsoft Visual C++ 6.0 Professional Edition
- Microsoft Visual C++ 6.0 Standard Edition
This article was previously published under Q190148
SYMPTOMS
IConnectionPointContainer::FindConnectionPoint() might fail
with the following error:
CONNECT_E_NOCONNECTION
(0x80040200 - there is no connection for this
connection id)
In
ATL, AtlAdivse() wraps this call and returns the previous error code. In MFC,
AfxConnectionAdvise() wraps this call and returns FALSE on failure of this
call.
CAUSE
The ATL Object Wizard has an option to add connection point
support to your COM object. This enables connection points for your COM object
by deriving your object's class from IConnectionPointContainerImpl, adding a
connection point map (BEGIN_CONNECTION_POINT_MAP / END_CONNECTION_POINT_MAP),
and adding an event interface (dispinterface) definition to the .idl file and
making it the default source interface for the COM object. However, the wizard
does not add the event interface to the connection point map.
RESOLUTION
Add the CONNECTION_POINT_ENTRY to the connection point map
manually. Prefix DIID_ to the event interface name to generate the IID for the
entry. For example:
BEGIN_CONNECTION_POINT_MAP(CFoo)
CONNECTION_POINT_ENTRY(DIID__DMyEvent)
END_CONNECTION_POINT_MAP()
STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section. Microsoft is researching this problem and will post more information in this article when the information becomes available.
Additional query words: IConnectionPointContainer IConnectionPoint
Keywords: kberrmsg kbtshoot kbnofix kbnoupdate kbprb kbwizard kbconnpts KB190148