FIX: VB User Control AmbientChanged Event Does Not Fire in IE
Article ID: 196219
Article Last Modified on 10/16/2002
APPLIES TO
- Microsoft Internet Explorer 3.0
- Microsoft Internet Explorer 3.01
- Microsoft Internet Explorer 3.02
- Microsoft Internet Explorer 4.0 128-Bit Edition
- Microsoft Internet Explorer 4.01 Service Pack 2
- Microsoft Visual Basic 5.0 Professional Edition
- Microsoft Visual Basic 6.0 Professional Edition
- Microsoft Visual Basic 5.0 Enterprise Edition
- Microsoft Visual Basic 6.0 Enterprise Edition
This article was previously published under Q196219
SYMPTOMS
Visual Basic user controls that are hosted on an HTML page in Internet
Explorer fail to fire the UserControl_AmbientChanged event, even when the
ambient properties of the HTML container have clearly changed.
CAUSE
Internet Explorer always passes DISPID_UNKNOWN when calling the
OnAmbientPropertyChanged method of the IOleControl interface. While legal
according to the rules of this method, it forces controls to query the
container back for each property of interest to determine which ambient
properties changed.
Visual Basic 5.0 does not handle DISPID_UNKNOWN correctly in
OnAmbientPropertyChanged and fails to fire the AmbientChanged event.
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article. This bug has been corrected in Visual
Studio, 6.0.
Keywords: kbbug kbfix kbvs600fix kbinetdev kbctrl KB196219