Performance decreases when you use certain Third-party ActiveX controls

Article translations Article translations
Article ID: 329478 - View products that this article applies to.
This article was previously published under Q329478
This article has been archived. It is offered "as is" and will no longer be updated.
IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:
256986 Description of the Microsoft Windows Registry
Expand all | Collapse all

On This Page

SYMPTOMS

When you use certain third-party ActiveX controls in a Microsoft Visio drawing, you may find that the CPU usage on your computer increases significantly (up to 98 percent). As a result, you experience decreased performance in Visio. Visio may also stop responding (hang).

This problem does not occur when you use the same ActiveX control in a Microsoft Office XP program, such as Microsoft Word or Microsoft Excel.

CAUSE

This problem may occur if the ActiveX control calls the PropertyNotifySink::OnChanged method. When this occurs, Visio does not correctly handle the ActiveX control.

RESOLUTION

Service pack information

This problem is corrected in Microsoft Visio 2002 Service Pack 2.

To resolve this problem, obtain the latest service pack for Visio 2002. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
867749 How to obtain the latest Visio 2002 Service Pack

Hotfix information

A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem.

If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, submit a request to Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
http://support.microsoft.com/contactus/?ws=support
Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.

The global version of this hotfix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
Date           Time      Version          Size         File name
-----------------------------------------------------------------
29-Oct-2002    21:17     10.0.3424.4        68,832      Visio.exe        
29-Oct-2002    21:17     10.0.3424.4     6,348,008      Vislib.dll       
04-Oct-2002    21:09     10.0.3404.4       646,320      Visres.dll    
This fix adds the following registry entry:
HKEY_CURRENT_USER\Software\Microsoft\Visio\Application\OnChangedSinkRefreshThrottle
In this fix, logic was added to the IPropertyNotifySink::OnChanged code in Visio to throttle the update calls to the shapesheet. This new behavior occurs if the following conditions are true:
  • The size or location of the ActiveX control does not change.

    -and-
  • You enable the
    OnChangedSinkRefreshThrottle
    registry entry after you install the fix. To enable the registry entry, set
    HKEY_CURRENT_USER\Software\Microsoft\Visio\Application\OnChangedSinkRefreshThrottle
    to a value other than the default value of 0 (zero) seconds.
The
OnChangedSinkRefreshThrottle
value is used to determine if enough time has elapsed between the last OnChanged request for a specific dispatch identifier (DISPID) on an ActiveX control. It provides relief when you use real-time controls with bindable properties that refresh the properties and inform Visio by using the OnChanged calls, and when the interval between the calls to IPropertyNotifySink::OnChanged cannot be set in the control.

To enable the
OnChangedSinkRefreshThrottle
registry entry, follow these steps:

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
  1. Start Visio.
  2. On the Tools menu, click Options.
  3. Click the Advanced tab.
  4. Under User settings, click to select the Put all settings in Windows registry check box, and then click OK.
  5. Quit Visio.
  6. Click Start, and then click Run.
  7. In the Open box, type regedit, and then click OK.
  8. Locate the following registry key:
    HKEY_CURRENT_USER\Software\Microsoft\Visio\Application
  9. In the right pane, double-click
    OnChangedSinkRefreshThrottle
    .

    Note that the default value that appears in the Value data box is 0 (zero).
  10. Change the value in the Value data box to use a value other than the default value of 0.

    Note: Any value that is greater than the default value of 0 enables the throttling feature. Use a value that is appropriate to the throttling level that you want. In certain situations, you may require a throttling level greater than 1. For example, type 2 in the Value data box, and then click OK.
  11. Quit Registry Editor.
Notes:
  • Use this method if you only have to enable the fix on a few computers. To deploy and enable this fix to a large number of computers, export the modified registry key to a .reg file and then deploy the fix in addition to the .reg file to the other computers . Note that because this is a per-user setting, the registry key must be configured for each user.
  • All Visio user settings registry keys (including the
    HKEY_CURRENT_USER\Software\Microsoft\Visio\Application\OnChangedSinkRefreshThrottle
    registry entry described in this article) are stored in the
    HKEY_CURRENT_USER
    hive in the registry. Because this hive maintains separate settings for individual users, the functionality must be enabled for each user.
  • To disable the
    OnChangedSinkRefreshThrottle
    registry entry, restore the value of the
    HKEY_CURRENT_USER\Software\Microsoft\Visio\Application\OnChangedSinkRefreshThrottle
    entry to the default value of 0 (zero) seconds.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
This problem was first corrected in Visio 2002 Service Pack 2.

Properties

Article ID: 329478 - Last Review: October 26, 2013 - Revision: 2.5
APPLIES TO
  • Microsoft Visio 2002 Standard Edition
  • Microsoft Visio 2002 Professional Edition
Keywords: 
kbnosurvey kbarchive kbautohotfix kbhotfixserver kbqfe kbbug kbfix KB329478

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com