Microsoft KB Archive/170770

= Known problems with ActiveX controls =

Article ID: 170770

Article Last Modified on 5/2/2006

-

APPLIES TO


 * Microsoft Visual InterDev 1.0 Standard Edition
 * Microsoft Visual InterDev 6.0 Standard Edition

-



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

