Known problems with ActiveX controls (170770)



The information in this article applies to:

  • Microsoft Visual InterDev 1.0
  • Microsoft Visual InterDev 6.0

This article was previously published under Q170770

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:
  • VideoSoft FlexArray Control: No known problems.
  • VideoSoft FlexString Control: No known problems.
  • Acrobat Control: No known problems.
  • Active EarthTime: Property page is blank.
  • ActiveMovie Control Object: Faulty tab order; properties button doesn't work.
  • ActiveXPlugin Object: Control is initially zero-sized by design.
  • Anibutton Control: No known problems.
  • Animated Button Control: No known problems.
  • AnimatedButton Object: No known problems.
  • Animation Control, version 5.0 No known problems.
  • Apex Data Bound Grid Control: Control does not support IPersist interfaces, and cannot be persisted.
  • ASP Arrow (Non Rectangle) OLE Control: No known problems.
  • Blue Sky Software SmartHelp Control: No known problems.
  • BtnMenu Object: No known problems.
  • CardCtl Object: No known problems.
  • Catalyst FTP Client Control Unknown; need license.
  • Chart Object: No known problems.
  • Common Dialog Control, version 5.0: ASSERT in support.cpp; can't insert control as GetTypeInfoOfGuid() fails.
  • Common Dialogs Control: Can ASSERT due to ref count problem if inserted after another bad control.
  • Conditional Range Footer Control: No known problems.
  • Conditional Range Header Control: No known problems.
  • Control for Java: No known problems.
  • Crystal Report Control: Can ASSERT due to ref count problem if inserted after another bad control.
  • Crystal Reports Viewer Control: No known problems.
  • Data Command Control: No known problems.
  • Data Connection Control: ASSERT in support.cpp; can't insert control as GetTypeInfoOfGuid() fails.
  • Data Range Footer Control: No known problems.
  • Data Range Header Control: No known problems.
  • daVinci Diagram Surface Control: GPF, does not support the proper interfaces for insertion.
  • daVinci Polyline Comb Control: GPF, does not support the proper interfaces for insertion.
  • daVinci Polyline Control: Does not support the proper interfaces for insertion.
  • DBCombo Control, version 4.0:ASSERT in support.cpp; GetTypeInfoOfGuid() fails.
  • DBCombo Control, version 5.0: No known problems
  • DBGrid Control: Control does not support IPersist interfaces, and cannot be persisted.
  • DBList Control, version 4.0: ASSERT in support.cpp; GetTypeInfoOfGuid() fails.
  • DBList Control, version 5.0: No known problems.
  • Desaware Mlist Control: No known problems.
  • Dockable Toolbar Control: No known problems.
  • Drag1 Control: No known problems.
  • DynamiCube: Layout tab causes error first time accessed.
  • Evyactx Control: Unknown; need license.
  • Farallon Look@Me Control: Property page is blank.
  • FarPoint Boolean Control: Unknown; need license.
  • FarPoint Currency Control: Unknown; need license.
  • FarPoint DateTime Control: Unknown; need license.
  • FarPoint DoubleSingle Control: Unknown; need license.
  • FarPoint LongInteger Control: Unknown; need license.
  • FarPoint Mask Control: Unknown; need license.
  • FarPoint Text Control: Unknown; need license.
  • Gauge Control: No known problems.
  • Gradient Object: No known problems.
  • Grid Control: Can ASSERT due to ref count problem if inserted after another bad control.
  • ImageKnife32 Control: Unknown; need license.
  • ImageList Control: "Enter" key doesn't work no property page.
  • ImageList Control, version 5.0 ASSERT in support.cpp; can't insert control as GetTypeInfoOfGuid() fails.
  • Include Control: No known problems.
  • ISForm Control: No known problems.
  • Key State Control: No known problems.
  • Label Object: If debugging on NT, will hit a user breakpoint in Ntdll.dll. (Just press F5 and go on.)
  • Lead Control: Unknown; need license.
  • Lead Std Control: ASSERT in ide\shell\proppage.cpp due to bad information returned from control
  • ListView Control: No known problems.
  • ListView Control, version 5.0: ASSERT in support.cpp; can't insert control as GetTypeInfoOfGuid() fails.
  • Macromedia Active Shockwave: ASSERT in ide\shell\proppage.cpp due to bad information returned from control
  • MAPI Messages Control, version 1.0: ASSERT in support.cpp; GetTypeInfoOfGuid() fails.
  • MAPI Messages Control, version 5.0: No known problems.
  • MAPI Session Control, version 4.0: ASSERT in support.cpp; GetTypeInfoOfGuid() fails.
  • MAPI Session Control, version 5.0: No known problems.
  • Masked Edit Control, version 4.0: ASSERT in support.cpp; GetTypeInfoOfGuid() fails.
  • Masked Edit Control, version 5.0: No known problems.
  • MCI Control, version 4.0: ASSERT in support.cpp; GetTypeInfoOfGuid() fails.
  • MCI Control, version 5.0: No known problems.
  • MarqueeCtl Object: Control is initially zero-sized by design.
  • Media Architects MKDisplay Control: Unknown; need license.
  • Media Architects MKMCI Control: Unknown; need license.
  • Media Architects MKSound Control: Unknown; need license.
  • Media Architects MKSprite Control: Unknown; need license.
  • Media Architects MKText Control: Unknown; need license.
  • Media Architects MKTimer Control: Unknown; need license.
  • MhGauge Control: No known problems.
  • Microsoft ActiveX Hot Spot Control 1.0: No known problems.
  • Microsoft ActiveX Image Control 1.0: No known problems.
  • Microsoft Comm Control: No known problems.
  • Microsoft FlexGrid Control, version 5.0: No known problems.
  • Microsoft Forms 2.0 CheckBox: No known problems.
  • Microsoft Forms 2.0 ComboBox: No known problems.
  • Microsoft Forms 2.0 CommandButton: No known problems.
  • Microsoft Forms 2.0 Frame: No known problems.
  • Microsoft Forms 2.0 Image: No known problems.
  • Microsoft Forms 2.0 Label: No known problems.
  • Microsoft Forms 2.0 ListBox: No known problems.
  • Microsoft Forms 2.0 MultiPage: No known problems.
  • Microsoft Forms 2.0 OptionButton: No known problems.
  • Microsoft Forms 2.0 ScrollBar: No known problems.
  • Microsoft Forms 2.0 SpinButton: No known problems.
  • Microsoft Forms 2.0 TabStrip: No known problems.
  • Microsoft Forms 2.0 TextBox: No known problems.
  • Microsoft Forms 2.0 ToggleButton: No known problems.
  • Microsoft HTML Layout Control 1.0: No known problems.
  • Microsoft MAPI Message Control: No known problems.
  • Microsoft MAPI Session Control: No known problems.
  • Microsoft Masked Edit Control: No known problems.
  • Microsoft Multimedia Control: No known problems.
  • Microsoft Rich Textbox Control: Considered unsafe due to read/write file methods; will not load in Internet Explorer 4.x.
  • Microsoft Shell Item Control: ASSERT in support.cpp; can't insert control as GetTypeInfoOfGuid() fails.
  • Microsoft Tab Control, version 5.0: No known problems.
  • Microsoft Web Browser Control: No known problems.
  • MSComm Control, version 4.0: ASSERT in support.cpp; GetTypeInfoOfGuid() fails.
  • MSComm Control, version 5.0: No known problems.
  • MSDataCombo Control: No known problems.
  • MSDataList Control: No known problems.
  • MSInet Control, version 5.0: No known problems.
  • OGLDemo Control: The control passes a CWnd with a NULL hwnd to the CClientDC constructor; the control seems to be "work in progress."
  • Outline Control: No known problems.
  • Outrider ButtonTool Control: Unknown; need license.
  • Outrider CheckList Control: Unknown; need license.
  • Outrider Enhanced SpinButton Control: Unknown; need license.
  • PicClip Control: No known problems.
  • PICS Date Edit Control: Can ASSERT due to ref count problem if inserted after another bad control.
  • Picture Clip Control, version 4.0: ASSERT in support.cpp; GetTypeInfoOfGuid() fails.
  • Picture Clip Control, version 5.0: No known problems.
  • Pinnacle-BPS Graph Control: No known problems.
  • Popup Window Object: No known problems.
  • PopupMenu Object: Control is initially zero-sized by design.
  • Preloader Object: No known problems.
  • ProgressBar Control: No known problems.
  • ProgressBar Control, version 5.0: ASSERT in support.cpp; can't insert control as GetTypeInfoOfGuid() fails.
  • ProtoView Diagramming Control (IDO): No known problems.
  • PugetSound Control: No known problems.
  • RemoteData Control 2.0: No known problems.
  • RichText Control, version 4.0: ASSERT in support.cpp; GetTypeInfoOfGuid() fails, GPF in Richtx32.ocx when persisting.
  • RichText Control, version 5.0: GPF in Richtx32.ocx when persisting.
  • RealAudio(tm) ActiveX Control (32-bit) Object: Control is initially poorly sized by design. Launching the browser from the control in design-time will make the editor unclosable. Drag-copying the control results in an ASSERT.
  • Sax Basic Engine Control - Foundation: No known problems.
  • Sax Canvas Control: No known problems.
  • Sax Webster Control: Unknown; need license.
  • SchGridCtrl Object: Numerous internal ASSERTS in Msscul00.dll leading to GPF in UserForms.
  • Sheridan Tabbed Dialog Control: No known problems.
  • Slider Control: No known problems.
  • Slider Control, version 5.0: ASSERT in support.cpp; can't insert control as GetTypeInfoOfGuid() fails.
  • SpinButton: No known problems.
  • StatusBar Control: No known problems.
  • StatusBar Control, version 5.0: ASSERT in support.cpp; can't insert control as GetTypeInfoOfGuid() fails.
  • StockTicker Object: No known problems.
  • Stylus Visual Voice for TAPI Control: No known problems.
  • Surround Video Control Object: No known problems.
  • SysInfo Control, version 5.0: No known problems.
  • Sysmon Graph Control: ASSERT when instantiating; no design-time rendering; memory leaks.
  • TabStrip Control: No known problems.
  • TabStrip Control, version 5.0: ASSERT in support.cpp; can't insert control as GetTypeInfoOfGuid() fails.
  • Threed Checkbox Control: No known problems.
  • Threed Command Button Control: No known problems.
  • Threed Frame Control: No known problems.
  • Threed Group Push Button Control: No known problems.
  • Threed Option Button Control: No known problems.
  • Threed Panel Control: No known problems.
  • Timer Object: No known problems.
  • Toolbar Control: No known problems.
  • Toolbar Control, version 5.0: ASSERT in support.cpp; can't insert control as GetTypeInfoOfGuid() fails.
  • TreeView Control: No known problems.
  • TreeView Control, version 5.0: ASSERT in support.cpp; can't insert control as GetTypeInfoOfGuid() fails.
  • UpDown Control, version 5.0: No known problems.
  • ValKey Control: Unknown; need license.
  • VideoPlay Control: No known problems.
  • ViewTracker Object: Can't change size; control flickers and eats CPU time.
  • Virtual World: Has problems repainting.
  • VisualSpeller Control: Unknown; need license.
  • VivoActive Control: No known problems.
  • Wang Image Admin Control: No known problems.
  • Wang Image Annotation Control: No known problems.
  • Wang Image Edit Control: No known problems.
  • Wang Image Scan Control: No known problems.
  • Wang Image Thumbnail Control: No known problems.
  • WebLabelCtl Object: Numerous internal ASSERTS in Msscul00.dll, ASSERT in HTMOP as well.
  • WficaCtl Object: No known problems.
  • Winsock Control, version 5.0: No known problems.
  • WTextCtl Object: Numerous internal ASSERTS in Msscul00.dll, ASSERT in HTMOP as well.

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 UserForms when inserting control
REASON: UserForms 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 UserForms.
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 UserForms ("if size.cy == 0 ...", for example), as controls could always be added from the UserForms 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:

Modification Type:MajorLast Reviewed:5/2/2006
Keywords:kb3rdparty kbCtrl kbprb KB170770