PRB: Event Firing Changes in MFC May Break Some ContainersLast reviewed: February 17, 1998Article ID: Q157970 |
The information in this article applies to:
SYMPTOMSActiveX Control containers implemented with Borland Delphi (and possibly other containers as well) may not see events fired by ActiveX Controls created with MFC version 4.2. The same container may have been able to handle events fired by a version of the same control created with MFC 4.1 or earlier.
CAUSEThe problem is related to a change made in MFC 4.2's implementation of the IConnectionPoint::Advise method. In MFC 4.1, the framework does a QueryInterface on the passed in IUnknown specifying the GUID of the default event set of the control. In MFC 4.2, the framework was changed to do a QueryInterface on the passed in IUnknown for IDispatch. Failing that, it queries for the event set interface. The change made to MFC 4.2 may make some containers unable to handle the events fired by the control. The problem is usually related to the way the container has implemented its control container support.
RESOLUTIONThis problem has been addressed with the Visual C++ 4.2 patch. With this patch, MFC's implementation of IConnectionPoint::Advise has been changed back to doing an initial QueryInterface on the passed in IUnknown specifying the GUID of the default event set of the control. Failing that, it queries for IDispatch.
STATUSThis behavior is by design.
REFERENCESFor information on how to obtain the Visual C++ 4.2 patch, please see the following article in the Microsoft Knowledge Base:
ARTICLE_ID: Q156934 TITLE : PATCH: Visual C++ 4.2b Patch Keywords : MfcOLE kb3rdparty Technology : kbole kbMfc Version : 4.20 Platform : NT WINDOWS Issue type : kbprb |
================================================================================
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |