PRB: Known Problems with ActiveX Controls

ID: Q170770


The information in this article applies to:


SYMPTOMS

Certain ActiveX Controls do not function properly when used in Visual InterDev. This is not the fault of Visual InterDev itself, but instead is a problem with the controls.


CAUSE

The problems occur when an ActiveX Control lacks a crucial interface, or fails to implement an interface properly. Although this behavior has been seen in some third-party vendor controls, it is more likely to occur in "high school project" controls that the user unwittingly picks up while navigating the Web. A list of "known problem" controls appears in the MORE INFORMATION section below (it includes controls that have since been "fixed," since old copies of the controls may still exist).


RESOLUTION

The only workaround is to avoid using defective controls. Major third-party vendors have been informed about buggy controls, and have been pretty good at getting new versions out. Contact the vendor to obtain updated versions of the controls.


STATUS

This behavior is by design.


MORE INFORMATION

Here is a list of all ActiveX controls that Microsoft has tested, good or otherwise:

Steps to Reproduce Behavior

Steps vary from control to control. Here is a summary of the problems and how or when they are encountered:

BEHAVIOR: GPF in Forms3 when inserting control
REASON: Forms3 crashes when IControls::Add() is called, due to lack of interface support by the control.
HANDLING: Obviously bad, but can only be fixed in either the controls themselves or Forms3.
AFFECTED CONTROLS: SchGridCtrl Object, daVinci Diagram Surface Control, daVinci Polyline Comb Control
Additional notes: SchGridCtl has massive internal exception problems, ASSERTing a lot in Msscul00.dll before the GPF.

BEHAVIOR: GPF in Richtx32.ocx when closing object editor
REASON: Control is trying to access a NULL pointer during persistence.
HANDLING: None possible--needs to fixed in the control.
AFFECTED CONTROLS: RichEdit Control, version 4.0, RichEdit Control, version 5.0.
Additional notes: Version 4.0 control also lacks type info support, and ASSERTS in support.cpp.

BEHAVIOR: Editor cannot be dismissed after launching browser from it in design-time
REASON: The control is refusing to transition to an inactive state.
HANDLING: None possible--needs to be fixed in the control.
AFFECTED CONTROLS: RealAudio(tm) ActiveX Control (32-bit) Object Additional notes: Killing MSDEV is the only way to get out of this!

BEHAVIOR: Couldn't insert for unknown reasons internal to the control
REASON: IControls::Add() returned FAILED(hr), with the HR code indicating that the proper interfaces were not supported by the control
HANDLING: Graceful. We currently pop-up a message box telling the user that the control couldn't be added.
AFFECTED CONTROLS: DaVinci Polyline Control

BEHAVIOR: Can insert, but cannot persist (just get)
REASON: Control does not support an IPersist format usable by HTMOP.
HANDLING: Graceful. We currently pop-up a message box telling the user that the control will not persist.
AFFECTED CONTROLS: Apex Data Bound Control, DBGrid Control.

BEHAVIOR: Cannot insert control for known reason internal to the control
REASON: GetTypeInfoOfGuid fails on these controls.
HANDLING: Pretty good. The ASSERT in Support.cpp is superfluous and should be removed, as the error handling is already smart enough to deal with this correctly.
AFFECTED CONTROLS: Data Connection Control, Microsoft Shell Item Control, Common Dialog Control, version 5.0, ImageList Control, version 5.0, ListView Control, version 5.0, ProgressBar Control, version 5.0, Slider Control, version 5.0, StatusBar Control, version 5.0, TabStrip Control, version 5.0, Toolbar Control, version 5.0, TreeView Control, version 5.0.

BEHAVIOR: ASSERT in ide\pkgs\htm\support.cpp, but OK if ignored.
REASON: GetTypeInfoOfGuid fails on these controls.
HANDLING: None--needs to be fixed in the control.
AFFECTED CONTROLS: DBCombo Control, version 4.0, DBList Control, version 4.0, MAPI Messages Control, version 1.0, MAPI Session Control, version 4.0 Masked Edit Control, version 4.0, MCI Control, version 4.0, MSComm Control, version 4.0, Picture Clip Control, version 4.0.

BEHAVIOR: ASSERT in ide\shell\proppage.cpp, but OK if ignored.
REASON: The number of counted array elements returned by the control is zero, but the element pointer returned is not NULL.
HANDLING: None--needs to be fixed in the control.
AFFECTED CONTROLS: Lead Std Control, Macromedia Active Shockwave

BEHAVIOR: ASSERT in CClientDC constructor
REASON: The control is passing a CWnd with a NULL hwnd to the CClientDC constructor
HANDLING: None--needs to be fixed in the control.
AFFECTED CONTROLS: OGLDemo Control
Additional notes: This control seems to be a "work in progress": its property page has a "TODO" comment on it.

BEHAVIOR: ASSERTS in MSSCUL00.DLL, ASSERT in parse.cxx line 2890
REASON: The controls have internal problems regarding exception handling. The parser ASSERT comes from a failure to save the stream, although text does appear in the document. Whether it's correct or not is unclear.
HANDLING: None--needs to be fixed in control.
AFFECTED CONTROLS: WebLabelCtl Object, WTextCtl Object

BEHAVIOR: ASSERTS in Fm20.dll, memory leaks, no design-time rendering
REASON: The control has internal problem regarding instantiation and rendering.
HANDLING: None--needs to be fixed in the control.
AFFECTED CONTROLS: Sysmon Graph Control

BEHAVIOR: User breakpoint hit in Ntdll.dll while debugging
REASON: Unknown; occurs only while using IDE debugger on an NT machine
HANDLING: N/A.
AFFECTED CONTROLS: Label Control
Additional notes: Works fine in debug version outside of the debugger & in retail. In debugger, just hit F5 and keep going.

BEHAVIOR: ASSERT in Cmdtarg.cpp, line 52 (destructor for CCmdTarget), but OK if ignored
REASON: Ref count is off by one
HANDLING: None--this is a flaky problem that shouldn't be handled.
AFFECTED CONTROLS: Common Dialogs Control, Crystal Report Control, Grid Control, PICS Date Edit Control
Additional notes: Only seen if a previously added control caused problems-- hard to reproduce.

BEHAVIOR: "Enter" doesn't do default behavior
REASON: Internal to control
HANDLING: None.
AFFECTED CONTROLS: ImageList Control
Additional notes: Using the "space" bar works fine.

BEHAVIOR: Controls show up poorly sized or zero-sized, but can be resized
REASON: "By design" in the controls, apparently
HANDLING: None. Would need to be handled in Forms3 ("if size.cy == 0 ...", for example), as controls could always be added from the Forms3 toolbox, or (better yet) in the controls themselves.
AFFECTED CONTROLS: ActiveX Plugin Object, MarqueeCtl Object, PopupMenu Object, RealAudio(tm) ActiveX Control (32-bit) Object.

BEHAVIOR: Property page is blank or incomplete
REASON: "By design" in the controls, apparently
HANDLING: None.
AFFECTED CONTROLS: Active Earth Time, Farallon Look@Me Control.

BEHAVIOR: Bad tab order, properties button doesn't work.
REASON: Internal to controls.
HANDLING: None.
AFFECTED CONTROLS: ActiveMovie Control Object

BEHAVIOR: Layout tab gives error first time.
REASON: Internal to control, apparently.
HANDLING: None.
AFFECTED CONTROLS: DynamiCube.

BEHAVIOR: Eats CPU, constantly repaints, can't resize.
REASON: Internal to control, apparently--design-time code should be rewritten.
HANDLING: None.
AFFECTED CONTROLS: ViewTracker Object.

BEHAVIOR: Repaints only on a resize.
REASON: Internal to control.
HANDLING: None.
AFFECTED CONTROLS: Virtual World.

BEHAVIOR: ASSERT in CBindHost code when drag-copying control
REASON: The control is trying to create a moniker with a NULL URL
HANDLING: None--needs to be fixed in control.
AFFECTED CONTROLS: RealAudio(tm) ActiveX Control (32-bit) Object


REFERENCES

For the latest Knowledge Base articles and other support information on Visual InterDev and Active Server Pages, see the following page on the Microsoft Technical Support site:

http://support.microsoft.com/support/vinterdev/

Additional query words:


Keywords          : kb3rdparty kbnokeyword kbActiveX kbVisID kbVisID100 kbVisID600 kbGrpASP 
Version           : WINDOWS:1.0,6.0
Platform          : WINDOWS 
Issue type        : kbprb 

Last Reviewed: May 10, 1999