Microsoft KB Archive/190148

= You receive a "CONNECT_E_NOCONNECTION (0x80040200 - there is no connection for this connection id)" error message, and IConnectionPointContainer::FindConnectionPoint fails in Visual C++ 6.0 =

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 

-

<div class="notice_section">

This article was previously published under Q190148

<div class="symptoms_section">

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.

<div class="cause_section">

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.

<div class="resolution_section">

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

<div class="status_section">

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.

<div class="moreinformation_section">

Steps to reproduce the behavior

 * 1) Create a default ATL AppWizard EXE or DLL project.
 * 2) Add an object using the ATL Object Wizard. (Choose New ATL Object from the Insert menu). Select any one of the different COM object types. On the Attributes tab of the ATL Object Wizard, select the Support Connection Points box.
 * 3) In the .idl file, you can see that in addition to the object's interface, there is an event interface which is the default source interface in the coclass of this object.
 * 4) In the header file for the object class, you can see that the object class is derived from IConnectionPointContainerImpl, and there is a connection point map. Note that there is not a connection point entry for the event interface.

(c) Microsoft Corporation 1998, All Rights Reserved. Contributions by Jaganathan Thangavelu, Microsoft Corporation.

Additional query words: IConnectionPointContainer IConnectionPoint

Keywords: kberrmsg kbtshoot kbnofix kbnoupdate kbprb kbwizard kbconnpts KB190148

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.